home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 6 / QRZ Ham Radio Callsign Database - Volume 6.iso / mac / files / amiga / csrc720j.lzh / mbport.h < prev    next >
C/C++ Source or Header  |  1993-01-24  |  6KB  |  129 lines

  1. /*
  2.  *  MBPORT.H - 6/20/89 - Definitions for MailBox ports.
  3.  */
  4.  
  5. extern word p_window; /* Port bit mask    */
  6. extern word c_flag;   /* Port command bit */
  7. extern word b_flag;   /* Port busy bit    */
  8.  
  9. /*
  10.  *  Device connected to the port. (port->dev)
  11.  */
  12.  
  13. #define p_serial    1     /* Device is "raw" serial, another computer */
  14. #define p_tnc       2     /* Device is a tnc with TAPR commands       */
  15. #define p_console   3     /* Device is the local machine console      */
  16. #ifdef MCH_AMIGA
  17. #define p_nulmdm    4     /* Device is a null modem to another machine*/
  18. #endif
  19.  
  20. /*
  21.  *  Permissions associated with the port. (port->priv)
  22.  */
  23.  
  24. #define p_bbs     0x0001  /* Only BBS may connect to this port        */
  25. #define p_ilcal   0x0002  /* Illegal call kicked off                  */
  26. #define p_ildig   0x0004  /* Illegal digi call no no   (not imp)      */
  27. #define p_mon     0x0008  /* Monitoring ok                            */
  28. #define p_gate    0x0010  /* Gateway out from this port ok            */
  29. #define p_sysop   0x0020  /* Remote sysop allowed (IF user can)       */
  30. #define p_upload  0x0040  /* Upload allowed from this port            */
  31. #define p_dnload  0x0080  /* Download allowed from this port          */
  32.  
  33. /*
  34.  *  Port Mode values. (port->mode)
  35.  */
  36.  
  37. #define sysop   0x0001   /* User is sysop                             */
  38. #define local   0x0002   /* User is local machine console             */
  39. #define remote  0x0004   /* User is not sysop                         */
  40. #define idle    0x0010   /* The port is idle                          */
  41. #define discon  0x0020   /* User has disconnected, but not logged out */
  42. #define timeout 0x0040   /* User timed out, but not yet logged out    */
  43. #define exclude 0x0080   /* User excluded, but not yet logged out     */
  44. #define logout  0x0100   /* User did "B", but not yet logged out      */
  45. #define forced  0x0200   /* User forced off, but not yet logged out   */
  46.  
  47. #define all  (local | remote | sysop)
  48. #define ops  (local | sysop)
  49. #define gone (discon | timeout | forced)
  50.  
  51. /*
  52.  *  Port flags. (port->flags)
  53.  */
  54.  
  55. #define p_dotmr  0x0001  /* Set the input timeout in getdat        */
  56. #define p_dofwd  0x0002  /* "forward for this port now"            */
  57. #define p_clrsys 0x0004  /* Must clear sysop mode on exit if discon*/
  58. #define p_req    0x0008  /* Had a connect request                  */
  59. #define p_give   0x0010  /* Ok to give time to DD on I/O           */
  60. #define p_echo   0x0020  /* Need to echo input to user             */
  61. #define p_lf     0x0040  /* This port needs LF after CR            */
  62. #define p_opreq  0x0080  /* Local console wants to int user        */
  63. #define p_term   0x0100  /* Port was used as terminal              */
  64. #define p_trans  0x0200  /* Port in transparent mode               */
  65.  
  66. typedef struct ports_s
  67. {
  68.   struct ports_s *next;  /* Next port                              */
  69.   struct ports_s *lport; /* Port this one linked to or NULL        */
  70.   char  id;              /* Identifies port to user                */
  71.   byte  idn;             /* Identifies port to op sys              */
  72.   byte  dev;             /* Device connected to the port           */
  73.   byte  ndigi;           /* # digi allowed on connect              */
  74.   word  flags;           /* Flags                                  */
  75.   word  priv;            /* What can you do from this port         */
  76.   word  mode;            /* Present state of the port              */
  77.   word  ctime;           /* "Waiting for input" timeout, seconds   */
  78.   word  dtime;           /* "Waiting for disconnect" timeout, sec  */
  79.   byte  errmax;          /* Allowed command errors before kick off */
  80.   byte  errors;          /* Number of errors user has made         */
  81.   char  *name;           /* Name of the port                       */
  82.  
  83.   byte  ec;              /* Echo TNC to console?                   */
  84.   byte  ecmon;           /* Echo to console while monitoring?      */
  85.   byte  ecuser;          /* Echo to user / forward to console?     */
  86.   byte  eccmds;          /* Echo TNC commands to console?          */
  87.   byte  tmode;           /* Transparent mode used by TNC           */
  88.   word  ftime;           /* Forward timeout time                   */
  89.  
  90.   word  mtime;           /* Allowed monitor time                   */
  91.   word  mcount;          /* Lines allowed in monitor               */
  92.  
  93.   byte  maxhrd;          /* Max on heard list                      */
  94.   byte  nhrd;            /* # presently on heard list              */
  95.   char  *heard;          /* Pointer to calls heard list            */
  96.  
  97.   byte  fwdmin;          /* Minute of the hour to forward          */
  98.   char  rcall[ln_call];
  99.  
  100. /* Task stuff. Doesn't really belong here, but saves an indirect. */
  101.  
  102.   long  itime;           /* Time when wait for input times out     */
  103.   long  expire;          /* Time at which we time this out         */
  104.   byte  flds;            /* # fields in current command            */
  105.   char  *fld[maxflds];   /* Pointers to the start of fields in cmd */
  106.   char  *cmd;            /* The command field text                 */
  107.   char  *line;           /* Text line last collected               */
  108.   char  opt1;            /* Major command id                       */
  109.   char  opt2;            /* Minor command id                       */
  110.   word  cmdcnt;          /* # commands done since login            */
  111.   FILE  *fl;             /* For any file required                  */
  112.   char  *msg;            /* Error msg before prompt, or NULL       */
  113.   struct user_s *user;   /* Pointer to user record                 */
  114.   struct msg_hdr_s *mmhs;/* Pointer to message header record       */
  115. } PORTS;
  116.  
  117. /*
  118.  *  porthd is the list header.
  119.  *  port   is the currently active port.
  120.  *  cport  is the machine console.
  121.  *  pipeid is the local end of the pipe.
  122.  */
  123.  
  124. extern int pipeid;
  125. extern PORTS *porthd, *port, *cport;
  126. extern PORTS *findport();
  127.  
  128.  
  129.